Engineers use compression (also called source coding or source encoding) to reduce the bit rate of digital video. Compression decreases the cost of storing and transmitting video information by converting the information into a lower bit rate form. Decompression (also called decoding) reconstructs a version of the original information from the compressed form. A “codec” is an encoder/decoder system.
Over the last 25 years, various video codec standards have been adopted, including the ITU-T H.261, H.262 (MPEG-2 or ISO/IEC 13818-2), H.263, H.264 (MPEG-4 AVC or ISO/IEC 14496-10) standards, the MPEG-1 (ISO/IEC 11172-2) and MPEG-4 Visual (ISO/IEC 14496-2) standards, and the SMPTE 421M (VC-1) standard. More recently, the H.265/HEVC standard (ITU-T H.265 or ISO/IEC 23008-2) has been approved. Extensions to the H.265/HEVC standard (e.g., for scalable video coding/decoding, for coding/decoding of video with higher fidelity in terms of sample bit depth or chroma sampling rate, for screen capture content, or for multi-view coding/decoding) are currently under development. A video codec standard typically defines options for the syntax of an encoded video bitstream, detailing parameters in the bitstream when particular features are used in encoding and decoding. In many cases, a video codec standard also provides details about the decoding operations a video decoder should perform to achieve conforming results in decoding. Aside from codec standards, various proprietary codec formats define other options for the syntax of an encoded video bitstream and corresponding decoding operations.
Different codec standards and formats support various coding/decoding tools. Palette mode is a coding/decoding tool under consideration for extensions of the H.265/HEVC standard for encoding/decoding of screen capture content. Palette mode can be helpful when encoding certain “artificially” created video content such as screen-capture content. Screen-capture content typically includes repeated structures (e.g., graphics, text characters) that use few distinct colors, compared to natural video. This provides opportunities for palette mode to improve performance. In general, in palette mode, a video encoder encodes pixels using index values that represent base colors in a palette. A pixel, in general, includes one or more sample values for a location in a picture. Each of the index values is associated with a different value (“base color”) among the colors of a unit. For example, if an 8×8 unit has four different colors among the 64 pixels of the unit, the encoder assigns four different index values for those four base colors. During encoding, the pixels are replaced with corresponding index values. The encoder encodes and signals a palette, which maps index values to base colors, as well as data for the arrangement of index values representing the pixels (“index map”). A decoder receives and decodes the palette and index map. Using that information, the decoder replaces index values in the index map with base colors for the original pixels.
In some designs of palette mode, rare colors can be encoded and decoded in escape mode. In escape mode, a pixel is not represented using a base color in a palette. Instead, a special index value marks the pixel for encoding and decoding in escape mode. Each sample value for the escape-coded pixel is quantized, which maps the sample value to one of a set of “bins” in order to approximate the sample value, and entropy coded, which typically reduces the number of bits used to represent the quantized sample value. In current designs of escape mode of the palette mode in the H.265/HEVC standard, entropy coding of quantized sample values results in encoded data that is not robust to certain types of data loss. In particular, transmission errors (e.g., due to bit flips in encoded data) can lead to severe quality degradation in reconstructed pixels.